export interface UserInfo {
  username: string;
  ipv4: string;
  description: string;
}

export interface IPSet {
  /**
   * 集合名称
   */
  setname: string;
  /**
   * 描述
   */
  description: string;
  /**
   * 是否禁用
   */
  disabled: boolean;
}

/**
 * IPSet 规则
 */
export interface IPSetRule {
  /**
   * IP地址
   */
  ip: string;
  /**
   * 规则超时
   */
  timeout: number;
  /**
   * 备注
   */
  remarks: string;
}

/**
 * IPSet 详细信息
 */
export interface IPSetInfo {
  /**
   * 名称
   */
  name: string;
  /**
   * 组内规则默认的超时时间
   */
  timeout: number;
  /**
   * 组内最大规则数
   */
  max_rules: number;
  /**
   * 规则是否支持备注
   */
  remarks: boolean;
  /**
   * 规则
   */
  rules: IPSetRule[];
  /**
   * 获取信息的时间 unix
   * 与规则的timeout结合来计算到期时间
   */
  time: number;
}
